package com.daka.entity;

import com.daka.tools.DateUtil;
import lombok.Data;
import lombok.ToString;
import org.apache.ibatis.type.Alias;

import java.io.Serializable;
import java.text.ParseException;

/**
 * Copyright: Copyright (c)2016
 * Company: 志愿者打卡器(www.dakaqi.cn)
 * 类名称: Activity <br>
 * 类描述: 老版打卡器-活动
 *
 * @author: ChunYang.Zhang
 * @since: 2016/11/22 9:24
 * @version: 1.0.0
 */
@SuppressWarnings("unused")
@Data
@ToString
@Alias(value = "activity")
public class Activity implements Serializable
{
    private static final long serialVersionUID = -521588321734306369L;
    private int id;
    /**
     * 活动名称
     */
    private String name;
    /**
     * 开始日期
     */
    private String startday;
    /**
     * 开始时间小时
     */
    private String starthour;
    /**
     * 开始时间分钟
     */
    private String startminute;
    /**
     * 结束日期
     */
    private String endday;
    /**
     * 结束时间小时
     */
    private String endhour;
    /**
     * 结束时间分钟
     */
    private String endminute;
    /**
     * 简介
     */
    private String demo;
    /**
     * 创建者
     */
    private int createuser;
    /**
     * 参与打卡人数
     */
    private int participants;
    /**
     * 所属公益组织
     */
    private int organization;

    /**
     * 活动状态
     */
    private int status;

    /**
     * 累计公益时间
     */
    private int times;

    private int delstatus;

    /**
     * 活动地址
     */
    private String address;
    /**
     * 注册地址  省
     */
    private String province;

    /**
     * 注册地址  市
     */
    private String city;

    /**
     * 注册地址 区
     */
    private String district;

    /**
     * 活动类型
     */
    private int type = 1;

    /**
     * 所需人数
     */
    private int needs;

    /**
     * 活动报名人数
     */
    private int signcount;

    /**
     * 记录活动在星期几举行
     */
    private String weekday;

    /**
     * 活动图片
     */
    private String img;

    private String createtime ;

    private String activitycode;

    private double lng;
    private double lat;
    private int locked = 0;
    private String tag;//活动标签
    private int selforgmember;//是否是只允许本组织成员报名



    public static UActiivty buildUActivity(Activity act,long groupId,long volunteerId)
    {
        UActiivty uActiivty = new UActiivty();

        try
        {
            uActiivty.setActivityCode(act.getActivitycode());
            uActiivty.setName(act.getName());
            uActiivty.setStartTime(act.getStartday() + " " + act.getStarthour() + ":" + act.getStartminute());
            uActiivty.setEndTime(act.getEndday() + " " + act.getEndhour() + ":" + act.getEndminute());
            uActiivty.setDelStatus(0);
            uActiivty.setLocked(act.getLocked());
            uActiivty.setActStatus(act.getStatus());
            uActiivty.setGroupId(groupId);
            uActiivty.setCreateTime(DateUtil.DefaultTimeFormatter.parse(act.getCreatetime()));
            uActiivty.setAddress(act.getAddress());
            uActiivty.setApplys(act.getSigncount());
            uActiivty.setAttends(act.getParticipants());
            uActiivty.setImgs(act.getImg());
            uActiivty.setMonitor(volunteerId);
            uActiivty.setNeeds(act.getNeeds());
            uActiivty.setProvince(act.getProvince());
            uActiivty.setCity(act.getCity());
            uActiivty.setDistrict(act.getDistrict());
            uActiivty.setScope(-1);
            uActiivty.setDemo(act.getDemo());
            uActiivty.setSelfGroup(act.getSelforgmember());
            uActiivty.setTags(act.getTag());
            uActiivty.setTop(0);
            uActiivty.setTimes(act.getTimes());
            uActiivty.setType(act.getType());
            uActiivty.setWeekDay(act.getWeekday());
            uActiivty.setVolunteerId(volunteerId);
            uActiivty.setLng(act.getLng());
            uActiivty.setLat(act.getLat());
            uActiivty.setOldid(Long.parseLong(String.valueOf(act.getId())));
            uActiivty.setBrowses(0);
            uActiivty.setSkill("");
            uActiivty.setClient("1003");

            uActiivty.setGoodComments(0);
            uActiivty.setMidComments(0);
            uActiivty.setBadComments(0);
            uActiivty.setOrderNum(0);
            uActiivty.setStatus(act.getStatus());
        } catch (ParseException e)
        {
            e.printStackTrace();
            return null;
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return null;
        }
        return uActiivty;
    }
}
